//
//  ZqmTabBar.swift
//  weibo
//
//  Created by 张清美 on 16/3/2.
//  Copyright © 2016年 张清美. All rights reserved.
//

import UIKit

class ZqmTabBar: UITabBar {

    
    //创建闭包
  var  ComposeButtonClickClosure:(()->())? //可选类型
    
    //重写父类的 init 方法
    
   override init(frame: CGRect) {
    
     super.init(frame: frame)
    
    
    
     setUpUI()
    
    }

    //必须实现
   required init?(coder aDecoder: NSCoder) {
       fatalError("init(coder:) has not been implemented")
   }
    
    private func setUpUI(){
    
    //添加 button
        //解决阴影问题
        backgroundImage = UIImage(named: "tabbar_background")
    
        addSubview(composeButton)
    
    }
    //懒加载控件

   private lazy var composeButton:UIButton={
    
    
    //创建 button
    let button = UIButton()
    
    //添加按钮的点击事件
    button.addTarget(self, action: "BtnDidClick", forControlEvents: UIControlEvents.TouchUpInside)

    
    
    //设置不同状态下的背景图片
    button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
    
    button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
    
    //设置不同状态下的图片
    button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
    
    button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
    
    button.sizeToFit()//设置 button 的大小与照片相同
    
    
    return button
    
    
    
    
    
    
    
    }()
    
    //实现加号按钮的点击事件
  @objc private  func btnDidClick(){
    //因为当前是一个视图 view,是不具备弹出控制器的功能的,所以我们需要将事件抛出给控制器 利用闭包
    
        //调用闭包
       ComposeButtonClickClosure?()
    
    }
    
    
    //设置 frame
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //获取到其他的按钮
        let itemW = self.frame.width/5
        
        var index = 0//声明是第几个按钮
        
        //获取其他的按钮
        for value in self.subviews{
            
         
           //判断是否是button
            
            if  value.isKindOfClass(NSClassFromString("UITabBarButton")!){
            
            //计算出对应的按钮位置的大小
            
                let x = CGFloat (index) * itemW
            
                value.frame.size.width = itemW
            
                value.frame.origin.x = x
            
                index++
            
                if index == 2 {
                    index++
                }
            }
            
     
        
        
        }
        
        
        //设置加号按钮的 frame
        composeButton.center = CGPoint(x: self.center.x, y: self.frame.height * 0.5)
        
    }
    
    
    

}
